<?php
App::uses('AppModel', 'Model');
/**
 * TiposProduto Model
 *
 * @property Produto $Produto
 */
class TiposProduto extends AppModel {
/**
 * Display field
 *
 * @var string
 */
	public $displayField = 'produto';
/**
 * Validation rules
 *
 * @var array
 */
	public $validate = array(
		'categoria_pai' => array(
			'numeric' => array(
				'rule' => array('numeric'),
				//'message' => 'Your custom message here',
				'allowEmpty' => true,
				//'required' => false,
				//'last' => false, // Stop validation after this rule
				//'on' => 'create', // Limit validation to 'create' or 'update' operations
			),
		),
		'produto' => array(
			'notempty' => array(
				'rule' => array('notempty'),
				//'message' => 'Your custom message here',
				//'allowEmpty' => false,
				//'required' => false,
				//'last' => false, // Stop validation after this rule
				//'on' => 'create', // Limit validation to 'create' or 'update' operations
			),
		),
	);

	//The Associations below have been created with all possible keys, those that are not needed can be removed

/**
 * hasMany associations
 *
 * @var array
 */
	public $hasMany = array(
		'Produto' => array(
			'className' => 'Produto',
			'foreignKey' => 'tipos_produto_id',
			'dependent' => false,
			'conditions' => '',
			'fields' => '',
			'order' => '',
			'limit' => '',
			'offset' => '',
			'exclusive' => '',
			'finderQuery' => '',
			'counterQuery' => ''
		),
		'Filhos'=>array(
			'className'=>'TiposProduto',
			'foreignKey'=>'categoria_pai'
		)
	);
	public $belongsTo = array(
		'Pai'=>array(
			'className' => 'TiposProduto',
			'foreignKey' => 'categoria_pai'
		)
	);
	
	/**
	 * Verifica o pai antes de salvar... Se for nulo, o pai é ele mesmo
	 * @param unknown_type $array
	 */
	public function trataPai($array){
		if(empty($array['categoria_pai'])){
			$array['categoria_pai'] = $array['id'];
			return $array;
		}
		return false;
	}
	
	public function afterSave(){
		$array = $this->trataPai($this->data['TiposProduto']);
		if($array)
			$this->save($array);
	}
}
